package com.amber.proyecto.envia.imagenes.sw.usuario;

import java.util.ArrayList;

import org.ksoap2.SoapEnvelope;
import org.ksoap2.serialization.SoapObject;
import org.ksoap2.serialization.SoapPrimitive;
import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;

import android.util.Log;

import com.amber.proyecto.envia.imagenes.sw.utils.ImagenNombreCat;
import com.amber.proyecto.envia.imagenes.sw.utils.Variables;

public class DatosFotosUsuario {
	
	private static DatosFotosUsuario datasource = null;

	private ArrayList<ImagenNombreCat> datos = null;

	private static final int SIZE = 74;
	private static String miCorreoUsuario;
	


	public static DatosFotosUsuario getInstancia()
	{
	
		if (datasource == null)
		{
			datasource = new DatosFotosUsuario();
		}
		return datasource;
	}
	public static DatosFotosUsuario getInstancia(String correoUsuario)
	{
		miCorreoUsuario = correoUsuario;
		if (datasource == null)
		{
			datasource = new DatosFotosUsuario();
		}
		return datasource;
	}	

	private DatosFotosUsuario()
	{
		datos = new ArrayList<ImagenNombreCat>();
		obtieneImagenesUsuario();
	}

	public int getSize()
	{
		return SIZE;
	}

	/**
	 * Returns the elements in a <b>NEW</b> list.
	 */
	public ArrayList<ImagenNombreCat> getDatos(int offset, int limit)
	{
		ArrayList<ImagenNombreCat> newList = new ArrayList<ImagenNombreCat>(limit);
		int end = offset + limit;
		if (end > datos.size())
		{
			end = datos.size();
		}
		newList.addAll(datos.subList(offset, end));
		return newList;		
	}
	
	private void obtieneImagenesUsuario(){
		String URL = "http://"+Variables.HOST+"/pags/servicios.php";
		String SOAP_ACTION="capeconnect:servicios:serviciosPortType#buscaImagenesUsuario"; 
		String METHOD_NAME = "buscaImagenesUsuario";
		String NAMESPACE = "http://www.your-company.com/servicios.wsdl";
		
		SoapSerializationEnvelope envelope;
        HttpTransportSE httpt;
      
        try{
            SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
               
        httpt = new HttpTransportSE(URL);
		request.addProperty("correoUsuario", miCorreoUsuario);
        envelope = new SoapSerializationEnvelope( SoapEnvelope.VER11 );
        envelope.dotNet = false;
        envelope.setOutputSoapObject(request);
        httpt.call(SOAP_ACTION, envelope);
        SoapObject result2 =  (SoapObject) envelope.getResponse();

        for(int cont=0; cont< result2.getPropertyCount(); cont ++){
        	SoapObject resultados = (SoapObject) result2.getProperty(cont);
        	//primitivas
        	SoapPrimitive nombreImagen = (SoapPrimitive) resultados.getProperty("nombreImagen");
        	SoapPrimitive latitud = (SoapPrimitive) resultados.getProperty("latitud");
        	SoapPrimitive longitud = (SoapPrimitive) resultados.getProperty("longitud");
        	SoapPrimitive idCategoria = (SoapPrimitive) resultados.getProperty("idCategoria");
        	SoapPrimitive comentario = (SoapPrimitive) resultados.getProperty("comentario");
        	SoapPrimitive nombreCategoria = (SoapPrimitive) resultados.getProperty("nombreCategoria");
            SoapPrimitive calificacion = (SoapPrimitive) resultados.getProperty("calificacion");
        	
        	
        	ImagenNombreCat imagen = new ImagenNombreCat();
        		imagen.setNombreImagen(nombreImagen.toString());
        		imagen.setLatitud(Double.parseDouble(latitud.toString()));
        		imagen.setLongitud(Double.parseDouble(longitud.toString()));
                imagen.setIdCategoria(Integer.parseInt(idCategoria.toString()));
                imagen.setComentario(comentario.toString());
                imagen.setNombreCategoria(nombreCategoria.toString());
                imagen.setCalificacion(Float.parseFloat(calificacion.toString()));
                 datos.add(imagen);
        }
        Log.i("Total ", datos.size()+"");
        
        
        
            
            
        }
        	catch(Exception err){
        		Log.e("Error en llena paises", err.toString());
        	}
	}

}
